
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<HTML>

<HEAD>
   <TITLE>eqstr_c</TITLE>
</HEAD>

<BODY style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
<A name="TOP"></A>

<table style="text-align: left; margin-left: auto; margin-right: auto; width: 800px;"
 border="0" cellpadding="5" cellspacing="2">
  <tbody>
    <tr>
      <td style="background-color: rgb(153, 153, 153); vertical-align: middle; text-align: center;">
      <div align="right"> 
      <small><small><a href="index.html">Index Page</a></small></small>
      </div>
      <b>eqstr_c</b> </td>
    </tr>

    <tr>
      <td style="vertical-align: top;">

<small><div align="center">
<A HREF="index.html#A">A</A>&nbsp;
<A HREF="index.html#B">B</A>&nbsp;
<A HREF="index.html#C">C</A>&nbsp;
<A HREF="index.html#D">D</A>&nbsp;
<A HREF="index.html#E">E</A>&nbsp;
<A HREF="index.html#F">F</A>&nbsp;
<A HREF="index.html#G">G</A>&nbsp;
<A HREF="index.html#H">H</A>&nbsp;
<A HREF="index.html#I">I</A>&nbsp;
<A HREF="index.html#J">J</A>&nbsp;
<A HREF="index.html#K">K</A>&nbsp;
<A HREF="index.html#L">L</A>&nbsp;
<A HREF="index.html#M">M</A>&nbsp;
<A HREF="index.html#N">N</A>&nbsp;
<A HREF="index.html#O">O</A>&nbsp;
<A HREF="index.html#P">P</A>&nbsp;
<A HREF="index.html#Q">Q</A>&nbsp;
<A HREF="index.html#R">R</A>&nbsp;
<A HREF="index.html#S">S</A>&nbsp;
<A HREF="index.html#T">T</A>&nbsp;
<A HREF="index.html#U">U</A>&nbsp;
<A HREF="index.html#V">V</A>&nbsp;
<A HREF="index.html#W">W</A>&nbsp;
<A HREF="index.html#X">X</A>&nbsp;
</div></small>
       <br>
       <table style="text-align: left; width: 60%; margin-left: auto; margin-right: auto;"
       border="0" cellspacing="2" cellpadding="2">
        <tbody>
          <tr>
            <td style="width: 50%; text-align: center;">
            <small>
              <a href="#Procedure">Procedure<br></a>
              <a href="#Abstract">Abstract<br></a>
              <a href="#Required_Reading">Required_Reading<br></a>
              <a href="#Keywords">Keywords<br></a>
              <a href="#Brief_I/O">Brief_I/O<br></a>
              <a href="#Detailed_Input">Detailed_Input<br></a>

              </small>
              </td>
              <td style="vertical-align: top; width: 50%; text-align: center;">
              <small>               <a href="#Detailed_Output">Detailed_Output<br></a>
              <a href="#Parameters">Parameters<br></a>
              <a href="#Exceptions">Exceptions<br></a>
              <a href="#Files">Files<br></a>
              <a href="#Particulars">Particulars<br></a>
              <a href="#Examples">Examples<br></a>

              </small>
              </td>
              <td style="vertical-align: top; width: 50%; text-align: center;">
              <small>               <a href="#Restrictions">Restrictions<br></a>
              <a href="#Literature_References">Literature_References<br></a>
              <a href="#Author_and_Institution">Author_and_Institution<br></a>
              <a href="#Version">Version<br></a>
              <a href="#Index_Entries">Index_Entries<br></a>
             </small>
            </td>
          </tr>
        </tbody>
</table>

<h4><a name="Procedure">Procedure</a></h4>
<PRE>
   SpiceBoolean eqstr_c ( ConstSpiceChar * a,  ConstSpiceChar * b )

</PRE>
<h4><a name="Abstract">Abstract</a></h4>
<PRE>
   Determine whether two strings are equivalent.
</PRE>
<h4><a name="Required_Reading">Required_Reading</a></h4>
<PRE>
   None.
</PRE>
<h4><a name="Keywords">Keywords</a></h4>
<PRE>
   ALPHANUMERIC
   ASCII
   CHARACTER
   COMPARE
   PARSING
   SEARCH
   STRING
   TEXT


</PRE>
<h4><a name="Brief_I/O">Brief_I/O</a></h4>
<PRE>
   VARIABLE  I/O  DESCRIPTION
   --------  ---  --------------------------------------------------
   a,
   b          I   Arbitrary character strings.

   The function returns SPICETRUE if A and B are equivalent.
</PRE>
<h4><a name="Detailed_Input">Detailed_Input</a></h4>
<PRE>
   a,
   b           are arbitrary character strings.
</PRE>
<h4><a name="Detailed_Output">Detailed_Output</a></h4>
<PRE>
   The function returns TRUE if A and B are equivalent: that is,
   if A and B contain  the same characters in the same order,
   when white space characters are ignored and uppercase and lowercase
   characters are considered equal.

   White space characters are those in the set

      { ' ', '\f', '\n', '\r', '\t', '\v' }

   Note that this specification differs from that of the Fortran version
   of this routine, which considers the blank ( ' ' ) to be the only
   white space character.
</PRE>
<h4><a name="Parameters">Parameters</a></h4>
<PRE>
   None.
</PRE>
<h4><a name="Exceptions">Exceptions</a></h4>
<PRE>
    1) If either input string pointer is null, the error 
       SPICE(NULLPOINTER) will be signaled.
</PRE>
<h4><a name="Files">Files</a></h4>
<PRE>
   None.
</PRE>
<h4><a name="Particulars">Particulars</a></h4>
<PRE>
   This routine is provided for those cases in which two strings
   must be compared, and in which allowances are to be made for
   extra (leading, trailing, and embedded) blanks and differences
   in case. For the most part,

      if ( <b>eqstr_c</b> ( A, B ) )
         .
         .

   is true whenever

      <a href="cmprss_c.html">cmprss_c</a> ( ' ', 0, a,        MAXLEN, tempa );
      <a href="ucase_c.html">ucase_c</a>  (            tempa, MAXLEN, tempa );

      <a href="cmprss_c.html">cmprss_c</a> ( ' ', 0, b,        MAXLEN, tempb );
      <a href="ucase_c.html">ucase_c</a>  (            tempb, MAXLEN, tempb );


      if ( !strcmp ( tempa, tempb ) )
         .
         .

   is true. There are two important differences, however.

      1) The single reference to <b>eqstr_c</b> is much simpler to
         write, and simpler to understand.

      2) The reference to <b>eqstr_c</b> does not require any temporary
         storage, nor does it require that the strings a and b
         be changed. This feature is especially useful when
         comparing strings recieved as subprogram arguments
         against strings stored internally within the subprogram.
</PRE>
<h4><a name="Examples">Examples</a></h4>
<PRE>
    Usage
    --------------------------------------------

       All of the following are TRUE.

          <b>eqstr_c</b> ( &quot;A short string   &quot;,
                    &quot;ashortstring&quot;        );

          <b>eqstr_c</b> ( &quot;Embedded        blanks&quot;,
                    &quot;Em be dd ed bl an ks&quot;    );

          <b>eqstr_c</b> ( &quot;Embedded        blanks&quot;,
                    &quot;   Embeddedblanks&quot;    );

          <b>eqstr_c</b> ( &quot; &quot;,
                    &quot;          &quot; );


       All of the following are FALSE.

          <b>eqstr_c</b> ( &quot;One word left out&quot;,
                    &quot;WORD LEFT OUT&quot;      );

          <b>eqstr_c</b> ( &quot;Extra [] delimiters&quot;,
                    &quot;extradelimiters&quot;      );

          <b>eqstr_c</b> ( &quot;Testing 1, 2, 3&quot;,
                    &quot;TESTING123&quot;       );


    Use
    --------------------------------------------

       The following illustrates a typical use for <b>eqstr_c</b>.

          #include &quot;SpiceUsr.h&quot;
              .
              .
              .
          SpiceChar * greeting ( SpiceChar *who )
          {

             if ( <b>eqstr_c</b> ( who, &quot;Steve&quot; ) )
             {
                return ( &quot;Yes, sir?&quot; );
             }
             else if ( <b>eqstr_c</b> ( who, &quot;Chuck&quot; ) )
             {
                return ( &quot;What can I do for you?&quot; );
             }
             else
             {
                return ( &quot;Whaddya want?&quot; );
             }
          }

       Note that all of the following calls will elicit the
       greeting &quot;Yes, sir?&quot;:

          greeting ( &quot;STEVE&quot; );
          greeting ( &quot;steve&quot; );
          greeting ( &quot;Steve&quot; );
          greeting ( &quot;sTEVE&quot; );
          greeting ( &quot; S T E V E &quot; );
</PRE>
<h4><a name="Restrictions">Restrictions</a></h4>
<PRE>
   None.
</PRE>
<h4><a name="Literature_References">Literature_References</a></h4>
<PRE>
   1)  &quot;American National Standard for Programming Languages -- C,&quot;
        Published by the American National Standards Institute, 1990.
        Section 7.3.1.9., p. 104.
</PRE>
<h4><a name="Author_and_Institution">Author_and_Institution</a></h4>
<PRE>
   N.J. Bachman    (JPL)
   I.M. Underwood  (JPL)
</PRE>
<h4><a name="Version">Version</a></h4>
<PRE>
   -CSPICE Version 1.3.0, 27-AUG-1999   (NJB)

      Added check for null input strings.  Added logic to handle the
      case where at least one input string is empty.
      
   -CSPICE Version 1.2.0, 24-FEB-1999 (NJB)

       Arguments passed to isspace are now cast to unsigned char to 
       suppress compilation warnings on some systems.

   -CSPICE Version 1.1.0, 08-FEB-1998 (NJB)

       Initial assignment of return value added to suppress compilation
       warnings on some systems.

   -CSPICE Version 1.0.0, 25-OCT-1997 (NJB)

       Based on SPICELIB Version 1.2.0, 03-AUG-1994 (NJB)
</PRE>
<h4><a name="Index_Entries">Index_Entries</a></h4>
<PRE>
   equivalent strings
</PRE>
<h4>Link to routine eqstr_c source file <a href='../../../src/cspice/eqstr_c.c'>eqstr_c.c</a> </h4>

      </td>
    </tr>
  </tbody>
</table>

   <pre>Wed Jun  9 13:05:23 2010</pre>

</body>
</html>

